import axios from 'axios'
import Vue from 'vue'
import qs from 'querystring'
import store from '../store'
import router from '../router'
import {uccessAlert,errorAlert} from '../utils/alert'

// 环境
if(process.env.NODE_ENV === "development"){
    Vue.prototype.$pre="http://localhost:3000"
}else{
    Vue.prototype.$pre=""
}

// 请求拦截
axios.interceptors.request.use(req=>{
    // 请求逻辑
    console.log(req);
    if(req.url!=='/api/userlogin'){
        req.headers.authorization=store.getters.userInfo.token
    }
    return req
})
// 响应拦截
axios.interceptors.response.use(res=>{

     console.group("本次请求地址：" + res.config.url)
     console.log(res);
     console.groupEnd()
      if(res.data.code!==200){
           errorAlert(res.data.msg)
      }
    //  // 统一掉线处理
    // if(res.data.msg="登录已过期或访问权限受限"){
    //     //  清空userinfo changuserinfo
    //     store.dispatch("changeUserinfo",{})
    //     router.replace("/login")
    // }
 

    return res
})
/**
 * 
 * @param {*} url :请求地址
 * @param {*} params 请求参数，默认是{}
 * @returns axios
 * @eg: const reqLogin=(user)=>get("/login",user)
 */

// get方式axios
export const get=(url,params={})=>{
        return axios({
            url,
            method:"get",
            params
        })
}
/**
 * 
 * @param {*} url :请求地址
 * @param {*} data 请求参数，默认是{}
 * @param {*} isFile 判断是否有文件，如果有文件，就传true,没有不用传。
 * @returns axios
 * @eg: const reqLogin=(user)=>post("/login",user)
 */
export const post=(url,data={},isFile)=>{
    let params=null;
    // 有文件
    if(isFile){
        params=new FormData()
        for(let key in data){
            params.append(key,data[key])
        }
    }else{
//  无文件
          params=qs.stringify(data)
    }
     return axios({
         url,
         method:"post",
         data:params
     })
}